home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1996 April
/
CHIP 1996 aprilis (CD06).zip
/
CHIP_CD06.ISO
/
hypertxt.arj
/
9304
/
MEMORY.CD
< prev
next >
Wrap
Text File
|
1995-04-19
|
19KB
|
341 lines
@VSegítség a kezdésben@N
@VA bôvített memóriák helyes használata@N
Parlagon heverô mezôk termékeny folyami tájon -- az Ön
386-os gépében is hasonló a helyzet? Cikkünkkel a PC
teljes memóriaterületének kihasználásában szeretnénk
segíteni -- s így természetesen hardvere lehetôségeit is
jobban kihasználhatja.
Frissen kicsomagolva fekszik az íróasztalon: egy csillogó
386-os gép, 4 Mbyte memóriával. Egy mozdulat, a hálózati
kapcsoló átbillen, s az indítóprogram memóriatesztje
megerôsíti a prospektus adatait: ""640 Kbyte Base Memory,
3456 Kbyte Extended Memory" kiírás jelenik meg a képernyôn.
Ezek összesen 4096 Kbyte-ot, azaz az ígéretnek megfelelôen
4 Mbyte-ot tesznek ki.
De miért osztja a gép két tartományra (""Base" és
""Extended") a memóriát? Ez a kérdés legkésôbb akkor kerül
elô, amikor egy memóriaigényes programot -- például a
Ventura Publisher nevû DTP-programot -- töltünk be számos
tárrezidens programmal együtt, például egér- vagy
billentyûzet-meghajtókkal. A Venturát már akkor sem lehet
elindítani, ha ezek a programok az operációs rendszerrel
együtt is csak körülbelül 723 Kbyte-ot foglalnak el: a
program több memóriát igényel!
Különös, hiszen a 723 Kbyte kevesebb mint a negyede annak a
mennyiségnek, amit a gépben van. A meglepett vásárlónak
ilyenkor bele kell mélyednie a kézikönyv ""kínai"
szakszövegébe, és úgy kell megváltoztatnia a gép indító
file-jait, hogy elérje a kívánt eredményt. Hiszen alig van
olyan felhasználói program, amely ezek nélkül az
útmutatások nélkül képes kihasználni a hatalmas memóriát.
Memória -- ezekben az alaplapon elhelyezkedô szerkezeti
elemekben tárolódik átmenetileg minden információ és
utasítás. A processzor (Central Processing Unit, CPU)
feldolgozza ezeket az információkat, és az eredményeket
megint csak a memóriában raktározza. A CPU-t például a
fôpostahivatalhoz lehet hasonlítani, amelyen keresztül megy
a ""memória-város" minden levele és csomagja. Innen
rajzanak ki a DOS ""alapmûveltséggel" rendelkezô küldöncök,
és elszállítják az információkat a város memóriacímeire. A
küldöncök azonban nemcsak házhoz szállítanak, hanem
információkat (""leveleket") is gyûjtenek a CPU számára.
Szövegszerkesztô program használata során ez így néz ki:
amint betöltôdik a programfile a merevlemezrôl a memóriába
(Random Access Memory, RAM), a CPU bizonyos
memóriacellákból elôhívja az éppen szükséges információkat.
@VKolonc a kompatibilitás@N
Tehát a CPU és a RAM között állandóan ide-oda áramlanak az
adatok. Ugyanez történik, ha a felhasználó szöveget visz
be: a szövegszerkesztô program által irányított CPU figyel
arra, hogy ne vesszen el információ, például azért, mert
rossz címre kerül. Ugyanis a memóriában rend uralkodik:
egy programot csak akkor lehet lefuttatni, ha az összes
adat pontosan azon a címen van, ahová szánták.
A CPU speciális utakon -- számítógépes szakzsargont
használva címvezetékeken -- keresztül éri el a
memóriacímeket. Az ôs-PC Intel 8086 típusú processzorának
20 ilyen címvezetéke van -- ezekkel 2^20 memóriacellát,
tehát 1|048|576 byte-ot, vagyis 1 Mbyte-ot lehet
megcímezni.
A DOS ennek mindössze kétharmadát használja memóriaként:
640 Kbyte-ot. A lehetséges memória maradék 384 Kbyte-ja
fenn van tartva a gép úgynevezett BIOS-a és a grafikai
kártyák adatai számára. A BIOS-t értelmezhetjük a
CPU-fôposta fióküzemeként. Körülbelül a memóriaváros 640.
és 768. kerülete között található egy csomagkiadó
videotékák számára: itt készítik elô a grafikus adatokat a
képernyôn való megjelenítésre. Ebben a 640 Kbyte és 1 Mbyte
közötti, rendszerterületnek is nevezett memóriatartományban
van még szabad hely, amit azonban (speciális memóriakezelô
segédprogramok nélkül) csak a DR DOS 5.0 verziója óta lehet
használni legalább meghajtóprogramok számára.
Még szegényesebb az 1|Mbyte-os határon felüli
memóriaterület kezelése. A DOS egyáltalán nem ismeri.
Ennek oka kézenfekvô: a DOS-t olyan processzor számára
fejlesztették ki, amely egyáltalán nem képes arra, hogy 1
Mbyte-on túli memóriát címezzen meg. Ez a helyzet azonban
már a 80286-os megjelenésekor megváltozott. A 80286-osnak
a 80386-oshoz hasonlóan további címvezetékei vannak, az
úgynevezett A20 vezetékkel. Ez a CPU akár 16 Mbyte memória
elérésére is képes. Azonban általában le van zárva a
további memóriaút -- a processzor egy speciális parancsa
megakadályozza, hogy memóriaként lehessen használni a
kiegészítô memóriaterületet. Ez megintcsak azt jelenti,
hogy a használható RAM mindössze 1 Mbyte. Amíg a CPU e
korlátozások szerint dolgozik, addig a gép valós (real)
módban mûködik -- ama normák szerint üzemel, amelyeket a
PC/XT-osztályba tartozó gépek számára írnak elô.
Ez az ósdi szabvány keményen tartja magát a DOS világában
-- azért, hogy a programok mindig minden gépen futtathatók
legyenek. A sokat dicsért kompatibilitásnak az az ára, hogy
a 386-os gépek teljes technikai lehetôségeit csak kerülô
utakon lehet megközelíteni. Azért marad egy bonbon az új
gép vásárlója számára: a High Memory Area, röviden HMA.
Még a DOS operációs rendszer alatt is a 286-os és újabb
processzorokkal 1088 Kbyte-ig lehet közvetlenül címezni.
Ezáltal a 386-os 64 Kbyte-tal haladja meg a mágikus 1
Mbyte-os határt -- persze csak akkor, ha használjuk az
A20-at.
Az elsô keserû csalódás után nem kell azonnal eladnunk a
386-os maradék 3 Mbyte memóriáját.
@VKerülô utak@N
Ugyanis van néhány lehetôség a többlet ésszerû
kihasználására. Néhány felhasználói program nem törôdik a
DOS korlátaival, és önállóan kezeli az extended memória
területét. Ide tartoznak a Lotus 1--2--3 3.0-as és e feletti
változatai, és a dBase IV 1.1.
További lehetôség a lezárt A20 megkerülésére a
RAMDRIVE.SYS. E meghajtóprogram segítségével a DOS-t meg
lehet téveszteni, hogy azt higgye, az 1 Mbyte feletti
memóriaterület merevlemez. A merevlemez olyan, mint
memóriavárosunk fôpostájának archívuma: itt tárolnak
mindent, aminek nem szabad elvesznie a munka befejezése
után. Azonban mint az archívumokra jellemzô, mindig sokáig
tart, amíg megkapjuk a kért adatokat. Ha ezzel szemben a
memóriaváros hatalmas elôvárosát -- a RAMDRIVE.SYS-szel
létrehozott ""memórialemezt" -- használjuk archívumként,
akkor gyorsabban megy a dolog.
E lehetôségek kihasználása érdekében a CONFIG.SYS
rendszerfile-ba be kell írni a @KDEVICE = RAMDRIVE.SYS|/e@N
sort. Az utasítás pontos formája persze attól függ, hogy a
RAMDRIVE.SYS nevû file hol van a merevlemezen -- ha például
a C: meghajtón lévô, DOS nevû könyvtárban, akkor az
utasítás helyesen: @KDEVICE = C:\DOS\RAMDRIVE.SYS|/e@N. Az
így létrejövô ""lemezt" -- memóriában lévô, ám
merevlemeznek látszó terület -- RAM-diszknek szokás
nevezni.
A memóriabôvítés ésszerû kihasználásának második kerülô
útja egy lemezgyorsító (cache) programon keresztül vezet.
A merevlemezen lévô adatokat, amelyekre a CPU-nak újra meg
újra szüksége van, tárolni lehet a bôvített memóriában, így
megnô a feldolgozási sebesség. Itt is szükség van egy sor
bevitelére a CONFIG.SYS file-ba: @KDEVICE =@N
@KSMARTDRV.SYS@N.
Az ilyen trükkök azonban nem csökkentik a megterhelést a
640 Kbyte-os város sürgô forgatagában. A modern programok,
különösen a grafikai programok óriási összefüggô
címterületet igényelnek. Ez azonban gyakran nem az
alapmemóriában található meg, mivel már ""elterpeszkedtek"
itt a DOS rendszerfile-jai s egy sor meghajtóprogram.
Ezzel szemben még gyakran van hely a rendszerterületen. A
640 Kbyte és a 768 Kbyte közötti tartomány ugyan már le van
foglalva a videokimenet számára, és a 960 Kbyte-tól az 1
Mbyte-os határig terjedô szakaszon van a CPU egy további
kezelôegysége, a ROM BIOS. De a kettô között szabad a hely.
Tehát miért ne építsünk itt bôvítô mûhelyeket? Ezek arról
gondoskodnak, hogy az extended memóriát alapmemóriaként
lehessen használni: ha egy DOS alapmûveltségû küldönc
érkezik az egyik ilyen mûhelybe, akkor nem találja meg ott
azt az információt, amit vissza kell vinnie a fôpostára, és
nem is tudja elraktározni leveleit és csomagjait. Ehelyett
további utasításokat kap, hogy a külsô kerületek mely
címeit kell megkeresnie. Mindazonáltal a küldönc csak az
EMM386.SYS jogosítvánnyal tud odajutni.
Ez a ""mûhely" a rendszerterületbôl 64 Kbyte
memóriaterületet foglal el, és lapkeretnek (page frame)
nevezik. Ezen az ablakon keresztül be lehet csúsztatni
egyes részeket az 1 Mbyte feletti extended memóriából, és
fel lehet használni programok számára.
@VMemória oda, ahol nincs@N
A memóriakezelés e típusa EMS (Expanded Memory
Specification) néven honosodott meg. Sok felhasználói
programnál írják a kézikönyvek vagy rajta van a
csomagoláson, hogy a program használatához EMS-re van
szükség. Ebben az esetben aktívnak kell lennie a hozzá
tartozó meghajtóprogramnak, az Expanded Memory Managernek
(EMM). Ez úgy érhetjük el, hogy a CONFIG.SYS file-ba
beírjuk a @KDEVICE = EMM386.SYS@N sort.
Az EMS kezelés szabványát illetôen elôször 1985-ben jött
létre megegyezés a Lotus, az Intel és a Microsoft között; e
cégek kezdôbetûit összerakva azóta LIM-szabványként van
érvényben. Három évvel ennek bevezetése után elkészítették
a szabvány javított változatát, a ma is érvényes ""EMS LIM
4.0"-t. Ezzel be lehet csúsztatni a rendszerterületre az 1
Mbyte feletti memória egyes területeit, így a processzor
azt hiszi, hogy saját -- DOS alatt kezelhetô --
memóriaterületét használja.
A memóriaváros külsô kerületeinek elérésére eddig három
lehetôséget írtak le, habár a felhasználói programok
jelenleg leggyakrabban még az EMS-t használják.
A leírt A20 vezeték egy további, szépreményû lehetôség
egészíti ki az eddigi összképet: az Extended Memory
Specification, röviden XMS. Ez a fogalom sajnos gyakran
okoz zavart a nyelvhasználatban, mivel az ""extended
memory" nemcsak egy új típusú memóriakezelést jelent, hanem
azt a teljes memóriakiépítést is jelöli, amely a 386-os
gépek prospektusában ""4 Mbyte-ra bôvített memóriaként"
szerepel.
@VAz A20-on keresztül minden címhez@N
Az A20 utcájának használatához azonban a DOS-küldöncöknek
külön áthaladási engedélyre van szükségük: a HIMEM.SYS-re.
Az igazolvány segítségével az A20-on keresztül gyorsan
eljutnak minden címre az 1|Mbyte-on túli külsô
kerületekben. A DOS 5.0 alatt még a HMA-t is kezelik, az
Extended Town-t (bôvített város), és a rendszerterület
kiszolgált mûhelyeit átépítették raktárcsarnokokká.
Hogy a felhasználói programok használhassák az extended
memóriát, ahhoz a CONFIG.SYS file-ba elôzôleg be kell írni
a @KDEVICE = HIMEM.SYS@N sort. Az MS-DOS 5.0 és a DR-DOS
5.0 operációs rendszerek ugyanúgy magukba foglalják ezt a
meghajtóprogramot, mint az elôzôekben leírt EMM386.SYS-t,
amely az EMS kezelésére szolgál.
îgy az alkalmazandó programoktól függ, hogy a 4 Mbyte-os
386-os gép büszke vásárlója milyen típusú memóriakezelôt
választ. A programok vagy megelégszenek a hagyományos 640
Kbyte-nál kevesebb memóriával, vagy EMS-t, vagy pedig
extended memóriát kívánnak mûködésükhöz.
Az utóbbi idôben komoly konkurenciát kaptak a DOS
kiszolgált küldöncei: a Windows 3.0-t és 3.1-et. A grafikus
felhasználói felület nemcsak vonzó külsejû, hanem éppen a
386-os gépeken áttöri azokat a korlátokat, amelyekkel az
elavult DOS szabályozza a memória használatát. A Windows
szintén használja az A20 vezetéket, tehát szüksége van a
HIMEM.SYS-re. Ha már elindult a bôvített operációs rendszer
-- a Windows --, akkor használható memóriaként rendelkezésre
áll a teljes memóriaterület: az extended memória, a HMA és
a rendszerterület szabad részei. Még egy csemegével szolgál
a Windows: több programot futtathat párhuzamosan.
Floppyformattálás és egyidejûleg egy adatbank átrendezése
nem jelent problémát egy Windows alatt futó 386-oson -- ezt
a tulajdonságot multitaskingnak hívják.
Azonban ahhoz, hogy használhassuk azokat a felhasználói
programokat is, amelyeket nem a Windows számára írtak, a
Windowsnak szüksége van egy csomó információra. Ezeket a
PIF file-ok tárolják.
A 386-oson futó Windows azonban többre is képes: mindig azt
a típusú memóriabôvítést bocsájtja a felhasználói program
rendelkezésére, amelyre annak szüksége van. Legyen EMS vagy
XMS -- a Windows minden programnak a megfelelôt tálalja.
Ezáltal tulajdonképpen választ kaptunk arra a kérdésre,
hogyan lehet legjobban kihasználni egy 386-os gép 4
Mbyte-nyi RAM-ját: a Windowszal -- vagy versenytársával,
az OS/2 új verziójával. A legrosszabb megoldás
kétségtelenül a RAM-diszk, s a kettô között van az EMS.
Az, hogy választásunk végül melyik lehetôségre esik, attól
függ, hogy milyen követelményeket támaszt az általunk
leggyakrabban használt szoftver.
@KHarald Fette -- Martin Vieten@N
@VExpanded Memory (EMS)@N
A CPU megszerzi, amire szüksége van
a/ EMS ablak 64 Kbyte
b/ felhasználói terület
c/ EMS (itt 512 Kbyte)
d/ rendelkezésre álló memória
a DOS 640 Kbyte-ot tud használni
@VExtended Memory (XMS)@N
Közvetlenül elérhetô memória
a/ csak speciális programok használhatják
b/ 384 Kbyte rendszerterület
a felhasználó nem használhatja közvetlenül
c/ felhasználói terület
d/ rendelkezésre álló memória
a DOS a kiépítéstôl függôen 640 Kbyte-ig címezheti
@VMemóriakezelési szójegyzék@N
@VNe féljünk a szakkifejezésektôl!@N
@KEMS:@N Expanded Memory Specification. LIM szabvány
szerinti memóriakezelés, lásd expanded memória.
@KExpanded memória:@N az 1 Mbyte-os határ feletti
kiegészítô memória, amit speciális meghajtóprogramokkal
(EMM.SYS vagy EMM386.SYS) lehet kiaknázni. Ezt a memóriát a
rendszerterület lapkeretnek (page frame) nevezett
szegmensén keresztül lehet elérni.
@KExtended memória:@N a fogalomnak két jelentése van.
Egyrészt: a 640 Kbyte-on túli memóriaterület. Másrészt:
XMS szabványú memóriakezelés.
@KLIM:@N Lotus--Intel--Microsoft specifikációk. Az EMS-hez
való hozzáférés szabványa, jelenleg a 4.0 verziója van
érvényben.
@KRendszerterület:@N adapter-szegmensnek vagy felsô
memóriának (upper memory) is nevezik. A 640 Kbyte és 1
Mbyte közötti memóriaterület, amely le van foglalva a
képernyô-memória, a ROM-ban lévô BIOS és az EMS-lapkeret
számára.
@KXMS:@N Extended Memory Specification. Ez egyformán
biztosítja a hozzáférést a felsô memóriához, a HMA-hoz és a
extended memóriához. A HIMEM.SYS meghajtóprogramra van
szükség hozzá.